<?php
App::uses('AppController','Controller');
/**
 * Users Controller
 *
 * @property User $User
 * @property PaginatorComponent $Paginator
 */
class UsersController extends AppController {

/**
 * Components
 *
 * @var array
 */
    public$components=array('Session');
  
    public function login(){
     $this->layout ='login_layout'; 
        
        // Aunque los campos username y password tienen validación para que no estén vacíos,
// volvemos a asegurarnos con el condicional que el campo username del formulario tiene
        //algún valor
        if(empty($this->data['User']['username'])==false)
        {
    	 //Consulta SQL para buscar al usuario con sus credenciales en la BD
$user=$this->User->find('all',array('conditions'=>array(
                'User.username'=>$this->data['User']['username'],
                'User.password'=>$this->data['User']['password'])));
         //Si se ha encontrado al usuario en la consulta
         if($user!=false)
         { 
          //Si existe se redirecciona al usuario a la aplicación creando una variable de sesión 
          $this->Session->setFlash(__('Gracias por loguearse!'));
          $this->Session->write('User',$user);
          $this->Redirect(array('controller'=>'Alumnos','action'=>'index'));
          exit();
         }
         else
         {
//Si los datos no son correctos se comunica al usuario y se le devuelve al mismo
          //formulario de login
          $this->Session->setFlash(__('Nombre de usuario y/o password incorrectos'));
          $this->Redirect(array('action'=>'login'));
          exit();
         }
        }
    }
	
	public function index(){
	$this->User->recursive = 0;
		$this->set('users', $this->paginate());
		$roles=$this->User->Role->find('list',array('fields'=>'Role.descripcion'));
                
		$this->set(compact('roles'));
	
	
	}
	public function logout(){
	
	      $this->Session->setFlash(__('Ingrese nuevamente!!'));
	$this->Redirect(array('controller'=>'Users','action'=>'login'));
	
	}
		public function add(){
	
	         if ($this->request->is('post')) {
			$this->User->create();
				if ($this->User->save($this->request->data)) {
			
				$this->Session->setFlash(__('El Usuario ha sido guardado'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('El Usuario no puede ser guardado. Intente otra vez.'));
			}
			

		}
		
		 $roles=$this->User->Role->find('list',array('fields'=>'Role.descripcion'));
		$this->set(compact('users','roles'));
		
	  
	}
	
	public function edit($id = null) {
	$this->User->id = $id;
		if (!$this->User->exists()) {
			throw new NotFoundException(__('Usuario Invalido'));
		}
		if ($this->request->is('post') || $this->request->is('put')) {
			if ($this->User->save($this->request->data)) {
				$this->Session->setFlash(__('El Usuario ha sido guardado'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('El Usuario no puede ser guardado. Intente otra vez.'));
			}
		} else {
			$this->request->data = $this->User->read(null, $id);
		}
		
		 $roles=$this->User->Role->find('list',array('fields'=>'Role.descripcion'));
		$this->set(compact('users','roles'));
	}
        
        
        	
		public function view($id = null) {
		$this->User->id = $id;
		if (!$this->User->exists()) {
			throw new NotFoundException(__('Usuario no válido'));
		}
		 
		$this->set('user', $this->User->read(null, $id));
		
			
		
	}
        public function activate($id = null) {
		
		if (!$id) {
			$this->Session->setFlash('Please provide a user id');
			$this->redirect(array('action'=>'index'));
		}
		
        $this->User->id = $id;
        if (!$this->User->exists()) {
            $this->Session->setFlash('Id de usuario invalido');
			$this->redirect(array('action'=>'index'));
        }
        if ($this->User->saveField('status', 1)) {
            $this->Session->setFlash(__('usuario reactivado'));
            $this->redirect(array('action' => 'index'));
        }
        $this->Session->setFlash(__('Usuario No fue reactivado'));
        $this->redirect(array('action' => 'index'));
    }
	public function delete($id = null) {
		if (!$this->request->is('post')) {
			throw new MethodNotAllowedException();
		}
		$this->User->id = $id;
		if (!$this->User->exists()) {
			throw new NotFoundException(__('User no v�lido'));
		}
		if ($this->User->delete()) {
			$this->Session->setFlash(__('User eliminado'));
			$this->redirect(array('action' => 'index'));
		}
		$this->Session->setFlash(__('la User no fue eliminado'));
		$this->redirect(array('action'  => 'index'));
	}
}